[INFO] cloning repository https://github.com/binBirman/Take-your-position
[INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/binBirman/Take-your-position" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FbinBirman%2FTake-your-position", kill_on_drop: false }`
[INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FbinBirman%2FTake-your-position'...
[INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }`
[INFO] [stdout] dd019a5174e8a9b628308898f6f5c616fb1cc1ce
[INFO] fixing binBirman/Take-your-position against try#622891a4e29178280638a6b63a8908bde2c0c854+cargoflags=-Zfix-edition=start=2015 for pr-157817-2
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FbinBirman%2FTake-your-position" "/workspace/builds/worker-5-tc1/source", kill_on_drop: false }`
[INFO] [stderr] Cloning into '/workspace/builds/worker-5-tc1/source'...
[INFO] [stderr] done.
[INFO] started tweaking git repo https://github.com/binBirman/Take-your-position
[INFO] finished tweaking git repo https://github.com/binBirman/Take-your-position
[INFO] tweaked toml for git repo https://github.com/binBirman/Take-your-position written to /workspace/builds/worker-5-tc1/source/Cargo.toml
[INFO] validating manifest of git repo https://github.com/binBirman/Take-your-position on toolchain 622891a4e29178280638a6b63a8908bde2c0c854
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+622891a4e29178280638a6b63a8908bde2c0c854" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] crate git repo https://github.com/binBirman/Take-your-position already has a lockfile, it will not be regenerated
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+622891a4e29178280638a6b63a8908bde2c0c854" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr] warning: virtual workspace defaulting to `resolver = "1"` despite one or more workspace members being on edition 2024 which implies `resolver = "3"`
[INFO] [stderr]   |
[INFO] [stderr]   = note: to keep the current resolver, specify `workspace.resolver = "1"` in the workspace root's manifest
[INFO] [stderr]   = note: to use the edition 2024 resolver, specify `workspace.resolver = "3"` in the workspace root's manifest
[INFO] [stderr]   = note: for more details see https://doc.rust-lang.org/cargo/reference/resolver.html#resolver-versions
[INFO] [stderr]     Updating crates.io index
[INFO] [stderr]  Downloading crates ...
[INFO] [stderr]   Downloaded dequemap v0.2.2
[INFO] [stderr]   Downloaded queue-ext v0.4.1
[INFO] [stderr]   Downloaded zmij v1.0.6
[INFO] [stderr]   Downloaded std-ext v0.3.2
[INFO] [stderr]   Downloaded mpsc v0.2.6
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-tc1/source:/opt/rustwide/workdir:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-m" "1610612736" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:3a6becf2bc8dde7f3fa57ede90e4f284e72d296796fc446bbb1e2c7cc0530151" "sleep" "infinity", kill_on_drop: false }`
[INFO] [stdout] 7d145a97ff4c6555dbf7c136944c3c20688e2656defbb692c884ae9af9763f0e
[INFO] running `Command { std: "docker" "start" "7d145a97ff4c6555dbf7c136944c3c20688e2656defbb692c884ae9af9763f0e", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "exec" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-w" "/opt/rustwide/workdir" "--user" "0:0" "7d145a97ff4c6555dbf7c136944c3c20688e2656defbb692c884ae9af9763f0e" "/opt/rustwide/cargo-home/bin/cargo" "+622891a4e29178280638a6b63a8908bde2c0c854" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "7d145a97ff4c6555dbf7c136944c3c20688e2656defbb692c884ae9af9763f0e", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "exec" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=" "-e" "RUSTDOCFLAGS=" "-w" "/opt/rustwide/workdir" "--user" "0:0" "7d145a97ff4c6555dbf7c136944c3c20688e2656defbb692c884ae9af9763f0e" "/opt/rustwide/cargo-home/bin/cargo" "+622891a4e29178280638a6b63a8908bde2c0c854" "fix" "--allow-no-vcs" "--allow-dirty" "--frozen" "--all" "--all-targets" "--message-format=json" "-Zfix-edition=start=2015", kill_on_drop: false }`
[INFO] [stderr] warning: virtual workspace defaulting to `resolver = "1"` despite one or more workspace members being on edition 2024 which implies `resolver = "3"`
[INFO] [stderr]   |
[INFO] [stderr]   = note: to keep the current resolver, specify `workspace.resolver = "1"` in the workspace root's manifest
[INFO] [stderr]   = note: to use the edition 2024 resolver, specify `workspace.resolver = "3"` in the workspace root's manifest
[INFO] [stderr]   = note: for more details see https://doc.rust-lang.org/cargo/reference/resolver.html#resolver-versions
[INFO] [stderr]    Compiling proc-macro2 v1.0.104
[INFO] [stderr]    Compiling zerocopy v0.8.31
[INFO] [stderr]     Checking futures-sink v0.3.31
[INFO] [stderr]     Checking futures-core v0.3.31
[INFO] [stderr]     Checking slab v0.4.11
[INFO] [stderr]    Compiling zmij v1.0.6
[INFO] [stderr]     Checking parking_lot_core v0.9.12
[INFO] [stderr]     Checking futures-io v0.3.31
[INFO] [stderr]     Checking errno v0.3.14
[INFO] [stderr]     Checking getrandom v0.2.16
[INFO] [stderr]    Compiling serde_json v1.0.148
[INFO] [stderr]     Checking rand_core v0.9.3
[INFO] [stderr]    Compiling ahash v0.8.12
[INFO] [stderr]     Checking hashbrown v0.15.5
[INFO] [stderr]     Checking hashbrown v0.14.5
[INFO] [stderr]     Checking crossbeam-queue v0.3.12
[INFO] [stderr]     Checking futures-channel v0.3.31
[INFO] [stderr]     Checking signal-hook-registry v1.4.8
[INFO] [stderr]     Checking rand_core v0.6.4
[INFO] [stderr]     Checking parking_lot v0.12.5
[INFO] [stderr]     Checking dequemap v0.2.2
[INFO] [stderr]    Compiling quote v1.0.42
[INFO] [stderr]     Checking std-ext v0.3.2
[INFO] [stderr]     Checking dashmap v6.1.0
[INFO] [stderr]    Compiling syn v2.0.112
[INFO] [stderr]     Checking ppv-lite86 v0.2.21
[INFO] [stderr]     Checking rand_chacha v0.9.0
[INFO] [stderr]     Checking rand_chacha v0.3.1
[INFO] [stderr]     Checking rand v0.9.2
[INFO] [stderr]     Checking rand v0.8.5
[INFO] [stderr]    Compiling serde_derive v1.0.228
[INFO] [stderr]    Compiling futures-macro v0.3.31
[INFO] [stderr]    Compiling tokio-macros v2.6.0
[INFO] [stderr]    Compiling pin-project-internal v1.1.10
[INFO] [stderr]     Checking futures-util v0.3.31
[INFO] [stderr]     Checking tokio v1.48.0
[INFO] [stderr]     Checking pin-project v1.1.10
[INFO] [stderr]     Checking serde v1.0.228
[INFO] [stderr]     Checking game_core v0.1.0 (/opt/rustwide/workdir/game_core)
[INFO] [stdout] warning: unused import: `crate::Rank`
[INFO] [stdout]  --> game_core/src/rules.rs:3:5
[INFO] [stdout]   |
[INFO] [stdout] 3 | use crate::Rank;
[INFO] [stdout]   |     ^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::Suit`
[INFO] [stdout]  --> game_core/src/rules.rs:4:5
[INFO] [stdout]   |
[INFO] [stdout] 4 | use crate::Suit;
[INFO] [stdout]   |     ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::cmp::Ordering`
[INFO] [stdout]   --> game_core/src/rules.rs:10:5
[INFO] [stdout]    |
[INFO] [stdout] 10 | use std::cmp::Ordering;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::command::Command`
[INFO] [stdout]  --> game_core/src/state.rs:4:5
[INFO] [stdout]   |
[INFO] [stdout] 4 | use crate::command::Command;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `rules::*`
[INFO] [stdout]   --> game_core/src/lib.rs:10:9
[INFO] [stdout]    |
[INFO] [stdout] 10 | pub use rules::*;
[INFO] [stdout]    |         ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::Rank`
[INFO] [stdout]  --> game_core/src/rules.rs:3:5
[INFO] [stdout]   |
[INFO] [stdout] 3 | use crate::Rank;
[INFO] [stdout]   |     ^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::Suit`
[INFO] [stdout]  --> game_core/src/rules.rs:4:5
[INFO] [stdout]   |
[INFO] [stdout] 4 | use crate::Suit;
[INFO] [stdout]   |     ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::cmp::Ordering`
[INFO] [stdout]   --> game_core/src/rules.rs:10:5
[INFO] [stdout]    |
[INFO] [stdout] 10 | use std::cmp::Ordering;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::command::Command`
[INFO] [stdout]  --> game_core/src/state.rs:4:5
[INFO] [stdout]   |
[INFO] [stdout] 4 | use crate::command::Command;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `rules::*`
[INFO] [stdout]   --> game_core/src/lib.rs:10:9
[INFO] [stdout]    |
[INFO] [stdout] 10 | pub use rules::*;
[INFO] [stdout]    |         ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `card`
[INFO] [stdout]   --> game_core/src/rules.rs:94:21
[INFO] [stdout]    |
[INFO] [stdout] 94 |                 let card = player.hand.remove(card_index);
[INFO] [stdout]    |                     ^^^^ help: if this is intentional, prefix it with an underscore: `_card`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `player_id`
[INFO] [stdout]    --> game_core/src/rules.rs:126:32
[INFO] [stdout]     |
[INFO] [stdout] 126 |             Command::Restart { player_id, yes } => Ok(vec![]),
[INFO] [stdout]     |                                ^^^^^^^^^ help: try ignoring the field: `player_id: _`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `yes`
[INFO] [stdout]    --> game_core/src/rules.rs:126:43
[INFO] [stdout]     |
[INFO] [stdout] 126 |             Command::Restart { player_id, yes } => Ok(vec![]),
[INFO] [stdout]     |                                           ^^^ help: try ignoring the field: `yes: _`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `finish_round` is never used
[INFO] [stdout]    --> game_core/src/rules.rs:130:8
[INFO] [stdout]     |
[INFO] [stdout]  12 | impl GameState {
[INFO] [stdout]     | -------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 130 |     fn finish_round(&mut self) -> Vec<Event> {
[INFO] [stdout]     |        ^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `card`
[INFO] [stdout]   --> game_core/src/rules.rs:94:21
[INFO] [stdout]    |
[INFO] [stdout] 94 |                 let card = player.hand.remove(card_index);
[INFO] [stdout]    |                     ^^^^ help: if this is intentional, prefix it with an underscore: `_card`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `player_id`
[INFO] [stdout]    --> game_core/src/rules.rs:126:32
[INFO] [stdout]     |
[INFO] [stdout] 126 |             Command::Restart { player_id, yes } => Ok(vec![]),
[INFO] [stdout]     |                                ^^^^^^^^^ help: try ignoring the field: `player_id: _`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `yes`
[INFO] [stdout]    --> game_core/src/rules.rs:126:43
[INFO] [stdout]     |
[INFO] [stdout] 126 |             Command::Restart { player_id, yes } => Ok(vec![]),
[INFO] [stdout]     |                                           ^^^ help: try ignoring the field: `yes: _`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `finish_round` is never used
[INFO] [stdout]    --> game_core/src/rules.rs:130:8
[INFO] [stdout]     |
[INFO] [stdout]  12 | impl GameState {
[INFO] [stdout]     | -------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 130 |     fn finish_round(&mut self) -> Vec<Event> {
[INFO] [stdout]     |        ^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Checking futures-executor v0.3.31
[INFO] [stderr]     Checking futures v0.3.31
[INFO] [stderr]     Checking queue-ext v0.4.1
[INFO] [stderr]     Checking mpsc v0.2.6
[INFO] [stderr]     Checking server v0.1.0 (/opt/rustwide/workdir/server)
[INFO] [stderr]     Checking client v0.1.0 (/opt/rustwide/workdir/client)
[INFO] [stdout] warning: unused import: `std::collections::HashMap`
[INFO] [stdout]  --> client/src/main.rs:3:5
[INFO] [stdout]   |
[INFO] [stdout] 3 | use std::collections::HashMap;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `AsyncWriteExt`
[INFO] [stdout]  --> client/src/main.rs:5:27
[INFO] [stdout]   |
[INFO] [stdout] 5 |     io::{AsyncBufReadExt, AsyncWriteExt, BufReader},
[INFO] [stdout]   |                           ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> server/src/main.rs:80:13
[INFO] [stdout]    |
[INFO] [stdout] 80 |     let (r, mut w) = socket.into_split();
[INFO] [stdout]    |             ----^
[INFO] [stdout]    |             |
[INFO] [stdout]    |             help: remove this `mut`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_mut)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> server/src/main.rs:80:13
[INFO] [stdout]    |
[INFO] [stdout] 80 |     let (r, mut w) = socket.into_split();
[INFO] [stdout]    |             ----^
[INFO] [stdout]    |             |
[INFO] [stdout]    |             help: remove this `mut`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_mut)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> server/src/main.rs:138:9
[INFO] [stdout]     |
[INFO] [stdout] 138 |     let mut client = {
[INFO] [stdout]     |         ----^^^^^^
[INFO] [stdout]     |         |
[INFO] [stdout]     |         help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> server/src/main.rs:138:9
[INFO] [stdout]     |
[INFO] [stdout] 138 |     let mut client = {
[INFO] [stdout]     |         ----^^^^^^
[INFO] [stdout]     |         |
[INFO] [stdout]     |         help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the trait bound `game_core::Command: Clone` is not satisfied
[INFO] [stdout]   --> client/src/main.rs:12:13
[INFO] [stdout]    |
[INFO] [stdout]  9 | #[derive(Debug, Serialize, Deserialize, Clone)]
[INFO] [stdout]    |                                         ----- in this derive macro expansion
[INFO] [stdout] ...
[INFO] [stdout] 12 |     Command(Command),
[INFO] [stdout]    |             ^^^^^^^ the trait `Clone` is not implemented for `game_core::Command`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the trait bound `game_core::Event: Clone` is not satisfied
[INFO] [stdout]   --> client/src/main.rs:13:11
[INFO] [stdout]    |
[INFO] [stdout]  9 | #[derive(Debug, Serialize, Deserialize, Clone)]
[INFO] [stdout]    |                                         ----- in this derive macro expansion
[INFO] [stdout] ...
[INFO] [stdout] 13 |     Event(Event),
[INFO] [stdout]    |           ^^^^^ the trait `Clone` is not implemented for `game_core::Event`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `Finished` is never constructed
[INFO] [stdout]   --> server/src/main.rs:22:5
[INFO] [stdout]    |
[INFO] [stdout] 19 | enum ServerPhase {
[INFO] [stdout]    |      ----------- variant in this enum
[INFO] [stdout] ...
[INFO] [stdout] 22 |     Finished, // 已结束，等待是否重开
[INFO] [stdout]    |     ^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `reset_game` is never used
[INFO] [stdout]    --> server/src/main.rs:217:10
[INFO] [stdout]     |
[INFO] [stdout] 217 | async fn reset_game(
[INFO] [stdout]     |          ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> client/src/main.rs:22:13
[INFO] [stdout]    |
[INFO] [stdout] 22 |     let (r, mut w) = stream.into_split();
[INFO] [stdout]    |             ----^
[INFO] [stdout]    |             |
[INFO] [stdout]    |             help: remove this `mut`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_mut)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `w`
[INFO] [stdout]   --> client/src/main.rs:22:13
[INFO] [stdout]    |
[INFO] [stdout] 22 |     let (r, mut w) = stream.into_split();
[INFO] [stdout]    |             ^^^^^ help: if this is intentional, prefix it with an underscore: `_w`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] For more information about this error, try `rustc --explain E0277`.
[INFO] [stdout] 
[INFO] [stderr] error: could not compile `client` (bin "client" test) due to 2 previous errors; 4 warnings emitted
[INFO] [stderr] warning: build failed, waiting for other jobs to finish...
[INFO] [stdout] warning: unused import: `std::collections::HashMap`
[INFO] [stdout]  --> client/src/main.rs:3:5
[INFO] [stdout]   |
[INFO] [stdout] 3 | use std::collections::HashMap;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `AsyncWriteExt`
[INFO] [stdout]  --> client/src/main.rs:5:27
[INFO] [stdout]   |
[INFO] [stdout] 5 |     io::{AsyncBufReadExt, AsyncWriteExt, BufReader},
[INFO] [stdout]   |                           ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `Finished` is never constructed
[INFO] [stdout]   --> server/src/main.rs:22:5
[INFO] [stdout]    |
[INFO] [stdout] 19 | enum ServerPhase {
[INFO] [stdout]    |      ----------- variant in this enum
[INFO] [stdout] ...
[INFO] [stdout] 22 |     Finished, // 已结束，等待是否重开
[INFO] [stdout]    |     ^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `reset_game` is never used
[INFO] [stdout]    --> server/src/main.rs:217:10
[INFO] [stdout]     |
[INFO] [stdout] 217 | async fn reset_game(
[INFO] [stdout]     |          ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the trait bound `game_core::Command: Clone` is not satisfied
[INFO] [stdout]   --> client/src/main.rs:12:13
[INFO] [stdout]    |
[INFO] [stdout]  9 | #[derive(Debug, Serialize, Deserialize, Clone)]
[INFO] [stdout]    |                                         ----- in this derive macro expansion
[INFO] [stdout] ...
[INFO] [stdout] 12 |     Command(Command),
[INFO] [stdout]    |             ^^^^^^^ the trait `Clone` is not implemented for `game_core::Command`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the trait bound `game_core::Event: Clone` is not satisfied
[INFO] [stdout]   --> client/src/main.rs:13:11
[INFO] [stdout]    |
[INFO] [stdout]  9 | #[derive(Debug, Serialize, Deserialize, Clone)]
[INFO] [stdout]    |                                         ----- in this derive macro expansion
[INFO] [stdout] ...
[INFO] [stdout] 13 |     Event(Event),
[INFO] [stdout]    |           ^^^^^ the trait `Clone` is not implemented for `game_core::Event`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> client/src/main.rs:22:13
[INFO] [stdout]    |
[INFO] [stdout] 22 |     let (r, mut w) = stream.into_split();
[INFO] [stdout]    |             ----^
[INFO] [stdout]    |             |
[INFO] [stdout]    |             help: remove this `mut`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_mut)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `w`
[INFO] [stdout]   --> client/src/main.rs:22:13
[INFO] [stdout]    |
[INFO] [stdout] 22 |     let (r, mut w) = stream.into_split();
[INFO] [stdout]    |             ^^^^^ help: if this is intentional, prefix it with an underscore: `_w`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] For more information about this error, try `rustc --explain E0277`.
[INFO] [stdout] 
[INFO] [stderr] error: could not compile `client` (bin "client") due to 2 previous errors; 4 warnings emitted
[INFO] running `Command { std: "docker" "inspect" "7d145a97ff4c6555dbf7c136944c3c20688e2656defbb692c884ae9af9763f0e", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "7d145a97ff4c6555dbf7c136944c3c20688e2656defbb692c884ae9af9763f0e", kill_on_drop: false }`
[INFO] [stdout] 7d145a97ff4c6555dbf7c136944c3c20688e2656defbb692c884ae9af9763f0e
